//
//  RCStatus.swift
//  RCWeibo
//
//  Created by CL on 15/12/23.
//  Copyright © 2015年 CL. All rights reserved.
//

import UIKit

class RCStatus: NSObject {

    /// 微博创建时间
    var created_at: String?
    /// 微博ID  NSInteger  在iPhone 5c以下的设备上 会导致 整型数据被截
    var id: Int64 = 0
    /// 微博信息内容
    var text: String?
    /// 微博来源
    var source: String?
    
    var user: RCUser?
    
    //MARK:
    //MARK:kvc赋值
    init(dict: [String : AnyObject]){
        
        super.init()
        //KVC赋值
        self.setValuesForKeysWithDictionary(dict)
        
    }
    
    override func setValue(value: AnyObject?, forUndefinedKey key: String) {
        //为没有定义属性的key防报错
    }
    
    override func setValue(value: AnyObject?, forKey key: String) {
        
        // 如果kvc user 键值， 那么通过user的kvc来做双模型转换
        if key == "user" {
        
            if let dict = value as? [String : AnyObject] {
            
                user = RCUser(dict: dict)
            
            }
            // 设置完后要return，否则进行下面的步骤后就白做了
            return
            
        }
        
        //为不实user的键值设置
        super.setValue(value, forKey: key)
        
    }
    
    //MARK:
    //MARK:    重写描述属性
    override var description: String{
        
        let keys = ["created_at", "id", "text", "source"]
        
        return dictionaryWithValuesForKeys(keys).description
    }


}
